package cn.melon.mod.library;

import java.util.List;

public interface ILibraryBooksDao {

    /**
     * 通过bookID或是书名确定书籍信息 
     * @param bookID  书本编号
     * @param bookName 书本名称
     * @return Books 书籍信息
     */
    public Books getInfoBySomeThing(String bookID, String bookName);            

    /**
     * 添加书籍(管理员功能)
     * @param booksInfo 书籍信息
     * @return Boolean 是否添加成功
     */
    public Boolean addBook(LibraryBooksInfo booksInfo);                          
    
    /**
     * 借书(*不可以直接给管理员, 因此不会去实现)
     * @param booksInfo 书籍信息
     * @param studentNum 借书人id
     * @return Boolean 是否借阅成功
     */
    public Boolean borrowBooks(LibraryBooksInfo booksInfo, String studentNum);  
    
    /**
     * 更新书籍信息
     * @param booksInfo 书籍信息
     * @return Boolean 是否更新成功
     */
    public Boolean updateBooks(LibraryBooksInfo booksInfo);                     
    
    /**
     * 还书(管理员功能)
     * @param booksInfo 书籍信息
     * @param studentNum 学生学号
     * @return Boolean 是否还书成功
     */
    public Boolean returnBooks(LibraryBooksInfo booksInfo, String studentNum);   
    
    /**
     * 续借图书
     * @param booksInfo 书籍信息
     * @param studentNum 学生学号
     * @return Boolean 是否续借成功
     */
    public Boolean renewBook(LibraryBooksInfo booksInfo, String studentNum);     
    
    /**
     * 获取某人借书信息
     * @param studentNum  学生学号
     * @return 书籍信息列表
     */
    public List<LibraryBooksInfo> getBorrowdBooks(String studentNum);           
    
    /**
     * 获取热门图书
     * @return 热门图书列表
     */
    public List<LibraryBooksInfo> getHotBooks();                                 
    
    /**
     * 获取当前借阅书籍个数
     * @param studentNum 学生学号
     * @return int 借书个数
     */
    public int getBorrowCount(String studentNum);                               
    
    /**
     * @Description: 获取所有图书
     * @return 返回图书列表
     */
    public List<LibraryBooksInfo> getAllBooks();                                
}
